import java.util.*;

/**
 * @author LKQ
 * @date 2022/4/23 15:52
 * @description 保存前缀积 + 最后一个零的位置
 */
public class ProductOfNumbers {
    List<Integer> nums;
    List<Integer> prefix;
    int zeroIndex;
    int n;
    int t;

    public ProductOfNumbers() {
        nums = new ArrayList<>();
        prefix = new ArrayList<>();
        zeroIndex = -1;
        n = 0;
        t = 1;
    }

    public void add(int num) {
        if (num == 0) {
            zeroIndex = n;
            t = 1;
        } else {
            t *= num;
        }
        nums.add(num);
        prefix.add(t);
        n++;
    }

    public int getProduct(int k) {
        if (n - k <= zeroIndex) {
            // 最后k个数包含了o
            return 0;
        } else {
            int a = prefix.get(n - 1), b = 1;
            if (n - k - 1 >= 0) {
                b = prefix.get(n - k - 1);
            }
            return a / b;
        }
    }

    
}
